/**
 * url资源反射管理
 * 
 * @param $
 */
(function($) {
	
	var SystemUrlReserveObject = {
		$zTree : "",
		init : function() {
			// 初始化成员表格
			this._init_member_table();
			// 保存url到 资源库中
			this._reg_save_url_to_db_btn();
			/** 添加资源url提交按钮 */
			this._reg_add_resource_submit_btn();
			/** 批量添加资源url提交按钮 */
			this._reg_pf_batch_save_url_to_db_btn();
		},
		/** 批量添加资源url提交按钮 */
		_reg_pf_batch_save_url_to_db_btn : function() {
			$(".pf-batch-save-url-to-db-btn").click(function() {
				var selectedRows = $("#pf-url-table").bootstrapTable('getSelections');
				SystemUrlReserveObject._open_resource_tree_modal(selectedRows);
			});
		},
		/** 添加资源url提交按钮 */
		_reg_add_resource_submit_btn : function() {
			$(document).on("click", ".pf-add-resource-submit", function() {
				//
				var name_array = $("#pf-add-resource-modal input[name='name']");
				var path_array = $("#pf-add-resource-modal input[name='path']");
				
				for (var i = 0, len = name_array.length; i < len; i++) {
					//
					var name = name_array.eq(i).val();
					var path = path_array.eq(i).val();
					if (name == "") {
						// layer.errorMsg("功能菜单名称不能为空");
						name_array.eq(i).focus();
						return;
					} else if (path == "") {
						// layer.errorMsg("url不能为空");
						path_array.eq(i).focus();
						return;
					}
				}
				// 资源id
				var selected_tree_node = SystemUrlReserveObject.$zTree.getCheckedNodes(true);
				if (selected_tree_node.length <= 0) {
					layer.errorMsg("请选择要挂载的资源节点");
					return;
				}
				
				// 处理中
				var index = layer.msg('正在处理，请稍候。。。', {
					icon : 16,
					shade : 0.3
				});
				//
				var resourceId = selected_tree_node[0].id;
				var names = "";
				var paths = "";
				
				for (var i = 0, len = name_array.length; i < len; i++) {
					//
					var name = name_array.eq(i).val();
					var path = path_array.eq(i).val();
					if (i == 0) {
						names = name;
						paths = path;
					} else {
						names = names + "," + name;
						paths = paths + "," + path;
					}
					
				}
				
				$.ajax({
					url : '/manage/system/url/reserve/save/resource',
					data : {
						names : names,
						paths : paths,
						resourceId : resourceId
					},
					type : "POST",
					cache : false,
					dataType : 'json',
					timeout : 15000,
					error : function() {
						
					},
					success : function(json) {
						// 关闭加载框
						layer.close(index);
						if (json.isSuccess) {
							$("#pf-url-table").bootstrapTable("refresh");
							$("#pf-add-resource-modal").modal("hide");
						} else {
							layer.msg('获取权限树异常', {
								icon : 2,
								shade : 0.3
							});
						}
					}
				});
			});
			
		},
		/** 保存url到 资源库中 */
		_reg_save_url_to_db_btn : function() {
			$(document).on("click", ".pf-save-url-to-db-btn", function() {
				//
				var data = $(this).closest("tr").data("data");
				SystemUrlReserveObject._open_resource_tree_modal(new Array(data));
			});
			
		},
		/** 打开系统资源树窗口 */
		_open_resource_tree_modal : function(data_array) {
			
			if (data_array == undefined || data_array.length <= 0) {
				layer.errorMsg("请选择项!");
				return;
			}
			
			$.ajax({
				url : '/manage/system/url/reserve/get/resource/all',
				type : 'GET',
				cache : false,
				dataType : 'json',
				timeout : 15000,
				error : function() {
				},
				success : function(json) {
					if (json.isSuccess) {
						init_tree(json.message);
					} else {
						layer.msg('获取权限树异常', {
							icon : 2,
							shade : 0.3
						});
					}
				}
			});
			
			$("#pf-add-resource-modal").modal("show");
			
			// // 菜单名称
			// $("#pf-add-resource-modal input[name='name']").val(data.name);
			// // path
			// $("#pf-add-resource-modal input[name='path']").val(data.path);
			// 先移除原有的
			$(".modal-body>.pf-row>.pf-row").remove();
			for (var i = 0, len = data_array.length; i < len; i++) {
				var data = data_array[i];
				var row_html = '<div class="pf-row">'
						+ '<input type="text" class="form-control" style="display: inline-block; width: 50%" placeholder="功能菜单名称" name="name" value="' + data.name + '"/>'
						+ '<input type="hidden" class="form-control" placeholder="path" name="path" value="' + data.path + '" />' + '</div>';
				$(".modal-body>.pf-row").append(row_html);
			}
			
			/**
			 * 初始化zTree插件
			 */
			function init_tree(json) {
				var setting = {
					check : {
						enable : true,
						chkStyle : "radio",
						radioType : "all"
					},
					data : {
						simpleData : {
							enable : true,
							idKey : "id",
							pIdKey : "parentId",
							rootPId : ""
						}
					},
				};
				SystemUrlReserveObject.$zTree = $.fn.zTree.init($("#resourceTree"), setting, json);
			}
		},
		/** 初始化成员表格 */
		_init_member_table : function() {
			$("#pf-url-table").bootstrapTable({
				method : 'get',
				url : "/manage/system/url/reserve/get/all",
				cache : false,
				// height : 400,
				sidePagination : 'server', // client or server
				queryParamsType : 'pageSize',
				striped : true,
				clickToSelect : true,
				pagination : false,
				pageSize : 10,
				pageList : [ 10, 20, 50, 100, 200 ],
				paginationDetail : true,
				paginationHAlign : 'right', // right, left
				showColumns : true,
				showRefresh : true,
				minimumCountColumns : 2,
				checkboxHeader : true,
				clickToSelect : true,
				columns : [ {
					field : 'checkBox',
					title : '#',
					align : 'center',
					valign : 'middle',
					visible : true,
					sortable : false,
					checkbox : true
				}, {
					field : 'id',
					title : '#',
					align : 'center',
					valign : 'middle',
					visible : false,
					sortable : false
				}, {
					field : 'name',
					title : '名称',
					align : 'center',
					valign : 'middle',
					visible : true,
					sortable : false
				}, {
					field : 'path',
					title : 'url',
					align : 'left',
					valign : 'middle',
					visible : true,
					sortable : false
				}, {
					field : 'option',
					title : '操作',
					align : 'center',
					valign : 'middle',
					visible : true,
					sortable : false,
					formatter : function(value, row, index) {
						return '<button type="button" class="btn btn-success btn-xs pf-save-url-to-db-btn"><i class="glyphicon glyphicon-pencil"></i>编辑到功能菜单中</button>&nbsp;';
					}
				} ]
			});
		}
	}
	SystemUrlReserveObject.init();
})(jQuery);